Telegram Group & Telegram Channel
🧡 RAII β€” Π³Π»Π°Π²Π½Ρ‹ΠΉ сСкрСт устойчивого ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ C++ ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! БСгодня Ρ…ΠΎΡ‡Ρƒ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ бСзопасный ΠΈ устойчивый C++ ΠΊΠΎΠ΄ β€” это RAII (Resource Acquisition Is Initialization).

RAII β€” это ΠΈΠ΄ΠΈΠΎΠΌΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Ρ…Π²Π°Ρ‚ рСсурса (Ρ„Π°ΠΉΠ», сокСт, ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΌΡŒΡŽΡ‚Π΅ΠΊΡ) происходит Π² конструкторС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° освобоТдСниС β€” Π² дСструкторС. Благодаря этому рСсурсы ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ автоматичСски, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


#include <fstream>

void saveData(const std::string& filename) {
std::ofstream file(filename); // ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°
if (!file.is_open())
throw std::runtime_error("Cannot open file");

file << "some data"; // Ρ„Π°ΠΉΠ» закроСтся автоматичСски
}


RAII Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π²ΠΎΠΉ ΠΊΠΎΠ΄:
βœ… БСзопасным ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ
βœ… Устойчивым ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌ
βœ… Π›Ρ‘Π³ΠΊΠΈΠΌ для чтСния ΠΈ сопровоТдСния

πŸ’‘ Π‘ΠΎΠ²Π΅Ρ‚: всСгда ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉ "Ρ€ΡƒΡ‡Π½Ρ‹Π΅" рСсурсы Π² ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΈ β€” std::unique_ptr, std::lock_guard, std::ofstream, std::thread ΠΈ Ρ‚.Π΄.


➑️ @cpp_geek



tg-me.com/cpp_geek/295
Create:
Last Update:

🧡 RAII β€” Π³Π»Π°Π²Π½Ρ‹ΠΉ сСкрСт устойчивого ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ C++ ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! БСгодня Ρ…ΠΎΡ‡Ρƒ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ бСзопасный ΠΈ устойчивый C++ ΠΊΠΎΠ΄ β€” это RAII (Resource Acquisition Is Initialization).

RAII β€” это ΠΈΠ΄ΠΈΠΎΠΌΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Ρ…Π²Π°Ρ‚ рСсурса (Ρ„Π°ΠΉΠ», сокСт, ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΌΡŒΡŽΡ‚Π΅ΠΊΡ) происходит Π² конструкторС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° освобоТдСниС β€” Π² дСструкторС. Благодаря этому рСсурсы ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ автоматичСски, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


#include <fstream>

void saveData(const std::string& filename) {
std::ofstream file(filename); // ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°
if (!file.is_open())
throw std::runtime_error("Cannot open file");

file << "some data"; // Ρ„Π°ΠΉΠ» закроСтся автоматичСски
}


RAII Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π²ΠΎΠΉ ΠΊΠΎΠ΄:
βœ… БСзопасным ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ
βœ… Устойчивым ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌ
βœ… Π›Ρ‘Π³ΠΊΠΈΠΌ для чтСния ΠΈ сопровоТдСния

πŸ’‘ Π‘ΠΎΠ²Π΅Ρ‚: всСгда ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉ "Ρ€ΡƒΡ‡Π½Ρ‹Π΅" рСсурсы Π² ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΈ β€” std::unique_ptr, std::lock_guard, std::ofstream, std::thread ΠΈ Ρ‚.Π΄.


➑️ @cpp_geek

BY C++ geek




Share with your friend now:
tg-me.com/cpp_geek/295

View MORE
Open in Telegram


C geek Telegram | DID YOU KNOW?

Date: |

Telegram announces Search Filters

With the help of the Search Filters option, users can now filter search results by type. They can do that by using the new tabs: Media, Links, Files and others. Searches can be done based on the particular time period like by typing in the date or even β€œYesterday”. If users type in the name of a person, group, channel or bot, an extra filter will be applied to the searches.

Traders also expressed uncertainty about the situation with China Evergrande, as the indebted property company has not provided clarification about a key interest payment.In economic news, the Commerce Department reported an unexpected increase in U.S. new home sales in August.Crude oil prices climbed Friday and front-month WTI oil futures contracts saw gains for a fifth straight week amid tighter supplies. West Texas Intermediate Crude oil futures for November rose $0.68 or 0.9 percent at 73.98 a barrel. WTI Crude futures gained 2.8 percent for the week.

C geek from tw


Telegram C++ geek
FROM USA